﻿/*
(c) 2010 - Open Source Business Foundation e. V. (www.osbf.de)
This software is provided under Microsoft Reciprocal License (Ms-RL)
(http://www.microsoft.com/opensource/licenses.mspx#Ms-RL)
All other rights reserved
*/


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MicroFormatWebRole {
    /// <summary>
    /// Constants for this Project
    /// </summary>
    
    public class Constants {
        // OData
        public const string ODATA_CONTAINER_NAME = "MicroFormats";
        public const string ODATA_NAMESPACE_NAME = "MicroFormats";

        // OData Entities
        public const string ODATA_ENTITY_MICROFORMATPOPERTIES = "MicroformatProperties";
        public const string ODATA_ENTITY_USER = "User";
        public const string ODATA_ENTITY_MICROFORMAT = "Microformat";
        public const string ODATA_ENTITY_TAG = "Tag";
        
        // OData Fields
        public const string ODATA_FIELD_KEY = "Key";
        public const string ODATA_FIELD_VALUE = "Value";
        public const string ODATA_FIELD_USERID = "UserId";
        public const string ODATA_FIELD_ROWKEY = "RowKey";
        public const string ODATA_FIELD_TAGNAME = "TagName";
        public const string ODATA_FIELD_TAGS = "Tags";
        public const string ODATA_FIELD_TYPE = "Type";
        public const string ODATA_FIELD_NAME = "Name";
        public const string ODATA_FIELD_FOUNDONURL = "FoundOnUrl";
        public const string ODATA_FIELD_FOUNDONDATE = "FoundOnDate";
        public const string ODATA_FIELD_PROPERTYNAMES = "PropertyNames";
        public const string ODATA_FIELD_PROPERTYVALUES = "PropertyValues";

        // OData Collections
        public const string ODATA_COLLECTIONS_TAGS = "Tags";
        public const string ODATA_COLLECTIONS_MICROFORMATS = "Microformats";
        public const string ODATA_COLLECTIONS_MICROFORMATPROPERTIES = "MicroformatProperties";

        // OData Collectionowner
        public const string ODATA_COLLECTIONOWNER_USER = "User";
        public const string ODATA_COLLECTIONOWNER_TAG = "Tag";


        // OData Feed Field
        public const string ODATA_FEED_USERID = "FeedUserId";
        public const string ODATA_FEED_ROWKEY = "FeedRowKey";
        public const string ODATA_FEED_KEY = "FeedKey";
        public const string ODATA_FEED_VALUE = "FeedValue";

        // Tags
        public const string UNTAGGED = "Untagged";
        public const string ME = "Me";
        public const string FRIENDS = "Friends";
        public const string EVERYTHING = "Everything";

        // Microformate
        public const string hCard = "hCard";

        // Attributes

        public const string attribute_fn = "fn";
        public const string attribute_family_name = "family-name";
        public const string attribute_given_name = "given-name";
        public const string attribute_additional_name = "additional-name";
        public const string attribute_honorific_prefix = "honorific-prefix";
        public const string attribute_honorific_suffix = "honorific_suffix";
        public const string attribute_adr = "adr";
        public const string attribute_post_office_box = "post-office-box";
        public const string attribute_extended_address = "extended-address";
        public const string attribute_street_address = "street-address";
        public const string attribute_locality = "locality";
        public const string attribute_region = "region";
        public const string attribute_postal_code = "postal-code";
        public const string attribute_country_name = "country-name";
        public const string attribute_type = "type";
        public const string attribute_value = "value";
        public const string attribute_agent = "agent";
        public const string attribute_bday = "bday";
        public const string attribute_category = "category";
        public const string attribute_class = "class";
        public const string attribute_email = "email";
        public const string attribute_geo = "geo";
        public const string attribute_latitude = "latitude";
        public const string attribute_longitude = "longitude";
        public const string attribute_key = "key";
        public const string attribute_label = "label";
        public const string attribute_logo = "logo";
        public const string attribute_mailer = "mailer";
        public const string attribute_nickname = "nickname";
        public const string attribute_note = "note";
        public const string attribute_org = "org";
        public const string attribute_organization_name = "organization-name";
        public const string attribute_organization_unit = "organization-unit";
        public const string attribute_photo = "photo";
        public const string attribute_rev = "rev";
        public const string attribute_role = "role";
        public const string attribute_sort_string = "sort-string";
        public const string attribute_sound = "sound";
        public const string attribute_tel2 = "tel2";
        public const string attribute_title = "title";
        public const string attribute_tz = "tz";
        public const string attribute_uid = "uid";        
        public const string attribute_url = "url";
        
        public static Dictionary<string, string> vCardAttribute = new Dictionary<string, string>() {
            { attribute_fn, "Fullname" },
            { attribute_family_name, "family-name"},
            { attribute_given_name, "given-name" },
            { attribute_additional_name, "additional-name" },
            { attribute_honorific_prefix, "honorific-prefix" },
            { attribute_honorific_suffix, "honorific-suffix" },
            { attribute_url, "url" },
            { attribute_email, "email" },
         //   { "type", "type" },
         //   { "value", "value" },
            { attribute_bday, "Birthday" },
            { attribute_adr, "Full adress" },
            { attribute_post_office_box, "post-office-box" },
            { attribute_extended_address, "extended-address"} ,
            { attribute_street_address, "street-address" },
            { attribute_locality, "locality" },
            { attribute_region, "region" },
            { attribute_postal_code, "postal-code" },
            { attribute_country_name, "country-name" },
            { attribute_type, "type" },
            { attribute_value, "value" },
            { attribute_nickname, "nickname" },
            { attribute_note, "note" },
            { attribute_org, "org" },
            { attribute_organization_name, "organization-name" },
            { attribute_organization_unit, "organization-unit" },
            { attribute_agent, "Agent" },
            { attribute_category, "Category" },
            { attribute_class, "Class" },
            { attribute_geo, "geo" },
            { attribute_latitude, "latitude" },
            { attribute_longitude, "longitude" },
            { attribute_key, "key" },
            { attribute_label, "label" },
            { attribute_logo, "logo" },
            { attribute_mailer, "mailer" },
            { attribute_photo, "photo" },
            { attribute_rev, "rev" },
            { attribute_role, "role" },
            { attribute_sort_string, "sort-string" },
            { attribute_sound, "sound" },
            { attribute_tel2, "tel2" },
          //  { "type", "type" },
          //  { "value", "value" },
            { attribute_title, "title" },
            { attribute_tz, "tz" },
            { attribute_uid, "uid" }

        };

        public static List<string> vCardsAttibutesName = new List<string> {
            attribute_honorific_prefix,
            attribute_given_name,
            attribute_additional_name,
            attribute_family_name, 
            attribute_honorific_suffix
        };

    }
}